package org.agile2010.war;
import static org.junit.Assert.*;
import org.junit.Test;
public class WarTest {
@Test
public void fiveBattlesWinsTheGame() throws Exception {
War war = new War();
war.battle(Card.Three, Card.Five);
war.battle(Card.Two, Card.Seven);
war.battle(Card.Four, Card.Five);
war.battle(Card.Four, Card.Five);
war.battle(Card.Four, Card.Five);
assertTrue(war.isGameOver());
assertEquals(War.ARMY_TWO, war.getWinner());
}
@Test
public void playerOneCanWinAlso() throws Exception {
War war = new War();
war.battle(Card.Ten, Card.Five);
war.battle(Card.Nine, Card.Seven);
war.battle(Card.Eight, Card.Five);
war.battle(Card.Eight, Card.Five);
war.battle(Card.Ten, Card.Five);
assertTrue(war.isGameOver());
assertEquals(War.ARMY_ONE, war.getWinner());
}
@Test
public void gameIsNotWonAfterFourBattles() {
War war = new War();
war.battle(Card.Two, Card.Three);
war.battle(Card.Two, Card.Three);
war.battle(Card.Two, Card.Three);
war.battle(Card.Two, Card.Three);
assertEquals(false, war.isGameOver());
assertEquals(War.STALEMATE, war.getWinner());
}
@Test
public void faceCardsCanDoBattle()
{
War war = new War();
war.battle(Card.King, Card.Queen);
war.battle(Card.King, Card.Queen);
war.battle(Card.King, Card.Queen);
war.battle(Card.Ace, Card.Jack);
war.battle(Card.King, Card.Queen);
assertTrue(war.isGameOver());
assertEquals(War.ARMY_ONE, war.getWinner());
}
}